package modelo.servicio;

import java.util.List;
import modelo.bd.dao.CorreoDAO;
import modelo.bd.excepcion.DAOException;
import modelo.dominio.Correo;

public class Correos {

    private static Correos instancia;
    private CorreoDAO dao;

    private Correos() {
        this.dao = new CorreoDAO();
    }

    public static Correos instancia() {
        if (instancia == null) {
            instancia = new Correos();
        }
        return instancia;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return new CloneNotSupportedException("No se puede clonar Correos.");
    }

    public void agregar(String clave, String tipo, String descripcion,
            String descripcionCorta, String usuario) throws DAOException {
    }

    public void editar(String clave, String tipo, String descripcion,
            String descripcionCorta, String usuario) throws DAOException {
    }

    public void eliminar(String clave) throws DAOException {
    }

    public List<Correo> todos() throws DAOException {
        return dao.selectAll();
    }

    public Correo porClave(String claveFlujo, long folio, long detalle, String usuario) throws DAOException {
        try {
            List<Correo> ls = dao.selectWhere("cofl_fluj_clave  = '"+claveFlujo.replace("'", "''")+"' \n"
                    + "AND    cofl_hifl_numero = " + folio);
            return ls.get(0);
        } catch (Exception e) {
            return null;
        }
    }

    public List<Correo> deSolicitud(String claveFlujo, long folio) throws DAOException {
        return dao.selectWhere("cofl_fluj_clave  = '" + claveFlujo.replace("'", "''") + "' \n"
                    + "AND    cofl_hifl_numero = " + folio);
    }
}
